#!/usr/bin/env python
# coding: utf-8

# In[ ]:





# In[ ]:





# # 上周回顾
# > 1.函数的定义: def
# > 2.	函数名的定义规则一变最名一样的则	
# > 3.调用的数的方式:fune_name(参数)
# > 4、参数:
# >> 1.形式参数(定义的数)
# >> 2.实际参数(调用的数)
# >> 3.有多个参数时:
# >>> 0.关键字参数
# >>> 1.位置参数(调用函数时)	关键字参数要均放在末尾(多个不考虑顾序》	
# >>> 2.默认参数(定义函数时)	默认参数均放在末尾《多个不考思顺序)

# # 本周知识
# 
# > 1. 函数的返回值
# > 2. 函数的输入参数类型
# > 3. 函数的返回参数类型
# > 4. 模块的概念
# > 5. 如何创建一个模块，并且调用自己定义的模块

# # 1. 函数的返回值
# > 1. 返回值关键字：return
# >> 1. 函数一定有返回值（无论是什么编程语言）
# >> 2. 在其他编程语言中（如c，java等），返回值一定要写，不写会报错！：对于python（更高级的语言），返回值如果不写，给定默认值none
# >> 3. 返回值一般为函数整体运行的结果（result），（函数返回值实践1），也可以自定义函数返回值（函数返回值实践2）

# In[1]:


# 函数返回值实践1
def get_foematted_name(first_name,last_name):
    """返回整洁的名字"""
    full_name = first_name + '' + last_name
#    print(full_name)    
    return full_name


# In[2]:


get_foematted_name("lI","HUA")


# In[3]:


print(get_foematted_name("lI","HUA"))


# In[4]:


# 函数返回值实践2
def log_in(username,password):
    """验证登录信息"""
    if username == "lihua" and password == 123456:
        return 1
    else:
        return 0


# In[5]:


log_in("lihua",1234567)


# ## 2.函数的输入参数类型
# > 1.函数可以输入复杂的参数：
# >> 1.函数参数为列表
# >> 2.函数参数为字典
# >> 3.。。。

# In[15]:


def test_A(names):
    """测试函数参数输入为列表"""
    return names


# In[17]:


test_A(["lihua","ziqi","alex"])


# In[18]:


def test_B(person):
    """测试函数参数输入为字典"""
    return person


# In[19]:


test_B({"stud_id":190031,"age":20,"Job":"student"})


# ## 3. 函数的输出（返回值）参数类型
# > 1. 在编程语言中，函数的返回值只能是一个值
# > 2. 返回值可以是 字符串、数值、列表、字典等数据（单一值）
# > 3. python可以输出多个返回值，结果会用一个元组进行封装并返回。（本质不违背函数的定义）
# 

# In[20]:


def test1_return():
    """测试返回值return为字符串"""
    return "你好"


# In[21]:


test1_return()


# In[22]:


def test2_return():
    """测试返回值return为数值"""
    return 12345


# In[23]:


test2_return()


# In[24]:


def test3_return():
    """测试返回值return为列表"""
    return ['Lihua', 'Alex', 'Ziqi']


# In[25]:


test3_return()


# In[26]:


def test4_return():
    """测试返回值return为字典"""
    return {'stud_id': 190031, 'age': 20, 'Job': 'student'}


# In[27]:


test4_return()


# In[28]:


# ******** return 后面写多个值，将会返回一个元组（一个值，不违背函数在编程思维中的定义）
def test5_return():
    """测试返回值return 为 多个值的情况"""
    return 20,"Lihua",['Lihua', 'Alex', 'Ziqi'],{'stud_id': 190031, 'age': 20, 'Job': 'student'}


# In[29]:


test5_return()


# In[30]:


def test6_return():
    """测试返回值return 为 多个值的情况"""
    return 88,89,90,90


# In[31]:


test6_return()


# ## 4.模块
# 
# > 1. 使用模块可以隐藏函数的源代码
# > 2. 使用的人不需要会底层代码（只需要会使用模块即可）
# > 3. 模块的使用方法：
# >> 1. import 模块名
# >>> * 使用：模块名.函数名（）
# >> 2. from 模块名 import 函数名
# >>> * 使用： 函数名（）

# In[1]:


import study


# In[2]:


# 函数的调用
study.search4vowels("hello zhichao")


# In[3]:


import time


# In[4]:


time.localtime()


# In[5]:


help(study.news_链接)


# In[6]:


study.news_链接('https://www.nfu.edu.cn/','xydt','98')


# In[ ]:




